#ifndef MODULEBTN_H
#define MODULEBTN_H

#include <QIcon>
#include <QDebug>
#include <QPoint>
#include <QVector>
#include <QBitmap>
#include <QWidget>
#include <QPainter>
#include <QSettings>
#include <QFileDialog>
#include <QMouseEvent>
#include <QMainWindow>
#include <QDesktopWidget>

#define cout qDebug() << "[" << __FILE__ << ":" << __LINE__ << "]"

/*
 * @file modulebutton.h
 * @brief XXXXXXXXXX
 * ＠date xxxx.xx.xx
 */

namespace Ui {
class ModuleBtn;
}

class ModuleBtn : public QWidget {
    Q_OBJECT

public:
    explicit ModuleBtn(QWidget *parent = 0);
    ~ModuleBtn();

    void SetModuleIcon(QIcon*);            // 设置按钮Icon
    void SetModuleText(const QString&);    // 设置按钮标题内容
    void SetModuleIndex(const int&, bool); // 设置按钮Index

signals:
    void sendModuleIndex(int);             // 点击时触发，主程序接收处理
    void sendCloseIndex(int);              // 关闭时触发，主程序接收处理
    void sendRefresh();                    // 增加时触发，主程序接收处理

private slots:
    void on_close_clicked();
    void on_button_clicked();

private:
    Ui::ModuleBtn *ui;

    int m_index;                           // 唯一标示，Index
    bool m_add;                            // 此按钮是否为增加按钮
    QString m_pathFile;                    // 配置文件路径
};

#endif // MODULEBTN_H
